package com.leigang.resource.controller;

import cn.hutool.json.JSONUtil;
import com.leigang.common.parent.pojo.dto.ServerConfigDto;
import com.leigang.common.parent.pojo.vo.ResponseVo;
import com.leigang.common.parent.pojo.vo.ServerConfigVo;
import com.leigang.resource.service.IServerConfigService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @author leig-a
 * @version 1.0
 * @desc
 * @date 2023/2/15 14:31
 */
@Slf4j
@RestController
@RequestMapping("/server-config")
public class ServerConfigController {


    private final IServerConfigService serverConfigService;
    public ServerConfigController(IServerConfigService serverConfigService) {
        this.serverConfigService = serverConfigService;
    }

    @GetMapping("/list")
    public ResponseVo<List<ServerConfigVo>> list(ServerConfigDto serverConfigDto) {
        log.info("server-config list:{}", serverConfigDto);
        List<ServerConfigVo> serverConfigVos = serverConfigService.listServerConfig(serverConfigDto);
        return new ResponseVo<>(serverConfigVos);
    }

//    @RequestLimit
    @PostMapping("/add")
    public ResponseVo<Boolean> add(@RequestBody ServerConfigDto serverConfigDto) {
        log.info("add serverConfigDto:{}", JSONUtil.toJsonStr(serverConfigDto));
        boolean insertServerConfig = serverConfigService.insertServerConfig(serverConfigDto);
        return new ResponseVo<>(insertServerConfig);
    }

//    @RequestLimit
    @PostMapping("/update")
    public ResponseVo<Boolean> update(@RequestBody ServerConfigDto serverConfigDto) {
        log.info("update serverConfigDto:{}", JSONUtil.toJsonStr(serverConfigDto));
        boolean updateServerConfig = serverConfigService.updateServerConfig(serverConfigDto);
        return new ResponseVo<>(updateServerConfig);
    }

//    @RequestLimit
    @DeleteMapping("/delete")
    public ResponseVo<Boolean> delete(@RequestBody ServerConfigDto serverConfigDto) {
        log.info("delete idList:{}", serverConfigDto.getIdList());
        boolean insertServerConfig = serverConfigService.deleteServerConfig(serverConfigDto.getIdList());
        return new ResponseVo<>(insertServerConfig);
    }
}
